package mn.slide.petrovis;

import it.sephiroth.android.library.imagezoom.ImageViewTouch;
import mn.slide.ubjam.model.Stations;
import android.app.Activity;
import android.content.Context;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.Canvas;
import android.graphics.Paint;
import android.os.Bundle;
import android.view.MotionEvent;
import android.view.View;
import android.view.View.OnTouchListener;
import android.view.WindowManager;

public class MyLocationActivity extends Activity
{
	private Canvas					canvas;		// Зам зурагдах талбар
	private Paint					paint;			// Зурагч
	private Bitmap					ub_map;		// Газрын зургын bitmap
	public Context					context;
	private ImageViewTouch			mImageView;
	private BitmapFactory.Options	options;
	private Stations				stations;
	public static float				imageWidth;
	public static float				imageHeight;

	@Override
	public void onCreate( Bundle savedInstanceState )
	{
		super.onCreate(savedInstanceState);

		setContentView(R.layout.mylocation_activity);
		getWindow().addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);
		mImageView = (ImageViewTouch) findViewById(R.id.ub_map_imageview);
		context = this;
		loadBitmap();
		setImage();
		drawOverlay();
		mImageView.setOnTouchListener(new OnTouchListener()
		{

			@Override
			public boolean onTouch( View arg0 , MotionEvent arg1 )
			{
				System.out.println("CLICKCK  " + arg1.getX() + " --  " + arg1.getY());

				return false;
			}
		});

	}

	/**
	 * bitmap-д зураг зааж өгөх
	 */
	public void loadBitmap()
	{

		options = new BitmapFactory.Options();
		options.inTempStorage = new byte[16 * 1024];

		// Bitmap -д УБ map оноох
		ub_map = BitmapFactory.decodeResource(getResources(), R.drawable.ub_map, options).copy(Bitmap.Config.ARGB_8888, true);

	}

	/**
	 * Бэлдсэн bitmap -г ImageView -д оноож өгөх
	 */
	public void setImage()
	{
		mImageView.setImageBitmapReset(ub_map, true);

	}

	/**
	 * 
	 * Тухайн хаяг(link) дээрх XML файлыг татаж, түүнээс parse хийн RoadStatus
	 * төрлийн жагсаалтад оноох
	 * 
	 * @param link
	 *            - Замын статус -уудыг агуулах XML -н хаяг(url)
	 * @return - RoadStatus төрлийн жагсаалт
	 */

	/**
	 * Өгөгдсөн байршлуудын дагуу ЗАМ - уудыг зурах
	 * 
	 * @param roads
	 *            - ЗАМ-уудын мэдээлэл агуулсан Road(Зам) төрлийн жагсаалт
	 */
	private void drawOverlay()
	{
		canvas = new Canvas(ub_map);
		paint = new Paint();
		paint.setStrokeWidth(1);
		paint.setStyle(Paint.Style.FILL);
		Bitmap myBitmap = BitmapFactory.decodeResource(getResources(), R.drawable.map_marker);
		imageHeight = myBitmap.getHeight();
		imageWidth = myBitmap.getWidth();
		for (int i = 0; i < stations.stations.size(); i++)
		{
			stations.stations.get(i).ID = i + 1;
			float x = stations.stations.get(i).x;
			float y = stations.stations.get(i).y;
			canvas.drawBitmap(myBitmap, x, y, paint);
		}

	}

	@Override
	protected void onResume()
	{
		super.onResume();
		if (ub_map == null)
		{
			loadBitmap();
		}
		if (mImageView == null)
		{
			setImage();
		}
	}

	@Override
	protected void onPause()
	{
		super.onPause();
		if (ub_map != null)
		{
			ub_map.recycle();
			ub_map = null;
		}
		if (mImageView != null)
		{
			mImageView.setImageBitmapReset(null, true);
		}
	}

	@Override
	protected void onDestroy()
	{
		super.onDestroy();
		if (ub_map != null)
		{
			ub_map.recycle();
			ub_map = null;
		}
		if (mImageView != null)
		{
			mImageView.setImageBitmapReset(null, true);
		}
	}

}
